In data communication, the error-correcting code/decode is used generally in the transmitting/receiving side in order to correct errors that occur during transmission. This error-correcting technology is generally useful in correcting “random errors,” which occur at discrete locations in transmission data, and is being widely used in general communication for this purpose. However, for “burst errors,” which are errors that successively occur at concentrated particular locations in transmission data, this technology is believed to suffer a reduction in error-correcting capability and the resulting degradation of transmission characteristics.
For this reason, an interleaver (interleave function) is being widely used as a technology for correcting burst errors efficiently in combination with error correction. Simply put, the interleave function refers to a function with which the transmitting side sorts transmission data according to a certain rule and transmits the sorting data.
If such interleaved data is transmitted and burst errors occur while transmitting, the receiving side restores the sequence of the received data to the sequence prior to the interleave performed by the transmitting side (this process performed by the receiving side is called “deinterleave”). Thus, the burst error locations which occur while transmitting are distributed and the burst errors converted into random errors, thereby error-correcting is performed efficiently.
Hereafter, the channel coding method in the 3GPP Release 8 (LTE) and problems of the method will be described.
Based on the above idea, in the specification of the uplink communication method in the mobile communication standard, 3GPP LTE, also a channel interleaver is used with turbo codes which are the error-correcting codes in order to convert burst errors into random errors. FIG. 5 shows a channel coding processing unit of a radio transmitting/receiving device at the transmitting side, which is configured based on this specification. To simplify the description, an example in which the number of Code Blocks is two is used. Hereafter, the operation of this channel coding processing unit will be described.
In Transport Block CRC (Cyclic Redundancy Check) Attachment (11), a CRC is attached to transmission data (Transport Block) passed by an upper layer.
In Code Block Segmentation (12), for the Transport Block after attaching the CRC, the Transport Block is segmented into blocks so that the number of bits inputted to a subsequent turbo encoder falls within 6144 bits. Each of the blocks after segmenting process will be referred to as Code Blocks.
Note that if the size of the Transport Block after attaching the CRC falls within 6144 bits, the segmenting process does not need and the Transport Block becomes a Code Block as it is.
In Code Block CRC Attachment (13), a CRC is attached to each Code Block.
In Turbo Coding & Rate Matching (14), the Code Blocks after attaching the CRC are coded to the turbo code, furthermore performed the rate matching for adjusting the code rate.
In Code Block Concatenation (25), the Code Blocks after turbo coding and rate matching are concatenated (linked) into one.
In Data & Control Multiplexing (16), a control information portion of the transmission data and the data portion, where the Code Blocks generated in the above series of steps are concatenated, are multiplexed.
In Channel Interleaver (17), the data sequence after multiplexing the control information portion and the data portion is performed interleave process to change the sequence thereof.
The bit sequence generated in the above steps is mapped to modulation symbols of QPSK (Quadrature Phase Shift Keying), 16QAM (Quadrature Amplitude Modulation), 64QAM, or the like, further mapped to the Data Symbol portion of the PUSCH (Physical Uplink Shared Channel), and transmitted.
Note that FIG. 6 shows the sub-frame format in case of Normal CP (Cyclic Prefix) of the PUSCH defined in the 3GPP LTE. One sub-frame has a length of 1 ms and is configured from 14 SC-FDMA symbols. The symbols include two types of symbols: “data symbols” configured from 12 symbols and “reference symbols” configured from 2 symbols. A “data symbol” is a field to which transmission data is mapped. In a “reference symbol,” a known sequence by both the transmitting and receiving seides is transmitted. And a “reference symbol” is used, for estimating the propagation path by the receiving side, or the like.
In the receiving side, channel coding process is performed in an order reverse to the above steps. First, channel deinterleave (a process reverse to the channel interleave) is performed, then the data portion and the control information portion are demultiplexed, and then Code Block Segmentation (a process reverse to the Code Block Concatenation performed by the transmitting side) is performed to segment into each of Code Blocks.
For each of the Code Blocks segmented, is performed rate de-matching process (a process reverse to the rate matching performed by the transmitting side) and then turbo decoding process is performed, and then CRC check is performed for each of Code Blocks.
It is generally believed that: burst errors which occur during transmission are converted into random errors by the channel deinterleave process, which is performed by the first step in the receiving side; and the random errors are then inputted to a turbo decoder, thereby error-correcting is performed efficiently.
This (efficient execution of the subsequent error correcting process owing to the deinterleave process) can hold true for cases where the Transport Block is composed of one Code Block.
However, if the number of Code Blocks is two or more (Code Block segmentation is performed), there occurs a problem that burst errors are converted into random errors only in a particular Code Block after the channel deinterleave and thus only the particular Code Block suffers significant degradation of transmission characteristics. This problem will be described below. Accordingly, simply complying with the channel interleave specification of the current 3GPP LTE may not be sufficient to cope with burst errors.
The above problem will be described in detail. To describe the problem simply, there will be used an example in which the number of Code Blocks is two (Code Blocks 0 and 1) and in which control information is not multiplexed (only the data portion is transmitted).
The bit sequence of Code Block 0 after turbo coding and rate matching ise0,0,e0,0, . . . ,eo,E0−1  [Formula 1]and the bit sequence of Code Block 1 is as follows.e1,0,e1,0, . . . ,e1,E1−1  [Formula 2]In addition, assume that the sizes of Code Blocks 0, 1 are E0, E1 [bit].
At this time, the bit sequence after concatenating the Code Blocks is as follows.{f0,f1,f2, . . . ,fG-1}={e0,0,e0,0, . . . ,e0,E0−1,e1,0,e1,0, . . . ,e1,E1−1}  [Formula 3]Here, assume that G is the bit number after the Code Blocks are concatenated, G is as follows.G=E0+E1
Then, the bit sequence after the Code Blocks are concatenated is combined for each bit of the modulation multi-level number. For example, in QPSK (modulation multi-level number=2),g0={f0,f1},g1={f2,f3}, . . . ,gH′-1={fG-2,fG-1}  [Formula 4]as above, a sequence combined for each two bits,{g0,g1, . . . ,gH′-1}  [Formula 5]is formed.
Also, in 16QAM (modulation multi-level number=4),
                                                                                                              g                    _                                    0                                =                                ⁢                                  {                                                            f                      0                                        ,                                          f                      1                                        ,                                          f                      2                                        ,                                          f                      3                                                        }                                            ,                                                g                  _                                1                                                                                                        =                                ⁢                                  {                                                            f                      4                                        ,                                          f                      5                                        ,                                          f                      6                                        ,                                          f                      7                                                        }                                            ,              …              ⁢                                                          ,                                                g                  _                                                                      H                    ′                                    -                  1                                                                                                        =                            ⁢                              {                                                      f                                          G                      -                      4                                                        ,                                      f                                          G                      -                      3                                                        ,                                      f                                          G                      -                      2                                                        ,                                      f                                          G                      -                      1                                                                      }                                                                        [                  Formula          ⁢                                          ⁢          6                ]            as above, a sequence combined for each four bits,{g0,g1, . . . ,gH′-1}  [Formula 7]is formed.
Here, if the modulation multi-level number is Qm (for QPSK, Qm=2; for 16QAM, Qm=4; for 64QAM, Qm=6) and the length of a sequence, as follows, combined for each bit of Qm is H′,{g0,g1, . . . ,gH′-1}  [Formula 8]H′ is H′=G/Qm. This sequence is inputted to the channel interleave unit to perform channel interleave.
FIGS. 7A and 7B show conceptual diagrams of a channel interleave matrix and a channel interleave process. In the channel interleave unit, an input bit sequence is as follows.{g0,g1, . . . ,gH′-1}  [Formula 9]This bit sequence is written to a following matrix, as shown in FIG. 7A,R′mux×Cmux  [Formula 10]in a row direction sequentially, starting with the first row. Here, as follows.H′=R′mux×Cmux,Cmux=NsymbPUSCH  [Formula 11](NsymbPUSCH represents the number of SC-FDMA symbols per 1 TTI transmitted in PUSCH; in FIG. 6, NsymbPUSCH=12R′mux=H′/Cmux  [Formula 12]
As shown in the output (read) of FIG. 7B, an output from the channel interleave unit is obtained by, reading the interleave matrix from top to bottom sequentially in the order of the first column, then, reading from top to bottom sequentially in the order of the second column, and repeating this process in the order for each columns. The output sequence is in order as follows.{g0,gCmux,g2Cmux, . . . ,g{R′mux−1}×Cmux,g1,gCmux+1,g2Cmux+1, . . . ,g{R′mux−1}×Cmux+1,g2,gCmux+2,g2Cmux+2, . . . ,g{R′mux−1}×Cmux+2, . . . ,gCmux−1,g2Cmux−1,g3Cmux−1, . . . ,gR′mux×Cmux−1}  [Formula 13]The channel-interleaved output data is then mapped to modulation symbols in units of a bit number of the modulation multi-level number, and further mapped to the data symbols of FIG. 6, and transmitted.
Note that the channel coding process related to the present invention is a technique disclosed in Patent Literature 1 below. The technique disclosed in Patent Literature 1 has the problem that since TF (Transport Format), that is, transport block size and Transport Block number is variable on a TTI (Transmission Time Interval) basis, the coding/decoding algorithm must be variable for each TTI (increasing the amount of computation).
To solve the problem, the technique disclosed in Patent Literature 1 divides a parameter (TFI) into a parameter which changes during communication and a parameter which does not change during communication. This technique also divides a coding/decoding process into a process corresponding to the parameter which changes and a process corresponding to the parameter which does not change. Thus, the technique prevents an increase in the amount of computation.